<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        // console.log(Promise);

        // ajax("url1",function(){
        //     //A
        //     ajax("url2",function(){
        //         //B
        //     })
        // })

        //  new Promise时候  函数参数立即执行  resolve-成功   reject-失败
        // 三种状态
        /*
            三种状态
                pending(正在进行) --- Rejected(失败态)
                    |
                fulfilled(成功态)
        */

        let p = new Promise(function(resolve,reject){
            // 异步任务
            setTimeout(()=>{
                console.log("p");
                resolve(123);
            },1000);
        });

        let p2 = new Promise(function(resolve,reject){
            // 异步任务
            setTimeout(()=>{
                console.log("p2");
                resolve(456);
            },2000)
        })

        Promise.race([p,p2]).then(data=>{
            console.log(data);
        }).catch(()=>{
            console.log("wrong");
        })

        Promise.all([p,p2]).then(()=>{
            console.log(12333);
        },()=>{
            console.log(45666);
        })

        // promise实例
        p.then(data=>{
            // 成功回调
            console.log("success",data);
        },function(){
            // 失败回调
            console.log("fail");
        });

        p.then(data=>{
            // 成功回调
            console.log("success",data);
        }).catch(()=>{
            console.log("fail");
        }).finally(()=>{
            console.log("over");
        })

        function ajax(url){
            return new Promise((resolve,reject)=>{
                $.ajax({
                    url,
                })
            })
        }

        ajax("http://......").then(()=>{
            ajax().then()
        },()=>{
            
        })
    </script>
</body>
</html>